/**
 * js实现多语言(可以在本地使用,不需要服务器运行支持)
 * date:2020/7/10
 * author:pythonLau
 * version:0.1
 */
// 需要jquery(jquery.min.js)
var i18n = {
        language: navigator.language.split("-")[0], //navigator.languages[1],//en,zh,...
        //根据控件的属性值获得语言值，obj：控件；label:属性名
        getLanVal: function(obj, label) {
            var val = "";
            try { //防止找不到
                val = "i18n.lan." + obj.attr(label);
                val = eval(val);
            } catch (error) {
                console.log(error);
            }
            return val;
        },
        // 根据key获得语言值; key1=i18n.lan.key1; key2=i18n.lan.key1.key2
        getKeyVal: function(key1, key2) {
            if (key1) {
                let key = "i18n.lan." + key1;
                if (typeof eval(key) != "undefined" && key2) {
                    key += "." + key2;
                }
                return eval(key);
            }
            return v; //undefined
        },

        /**
         * @Description :  // 初始化：根据lan设置i18n.lan;
         * @Note        : 
         * @param        {*} language en/zh等;不使用时自动获取;
         * @return       {*} 无
         */
        init: function(language) {
            if (typeof(language) == "undefined") {
                language = this.language;
            }
            try {
                lan = eval("Strings_" + language);
            } catch (error) {
                lan = eval("Strings"); //默认
            }
            if (!lan) { //都找不到直接返回
                return;
            }
            this.lan = lan;
        },

        // 显示到页面
        load: function() {
            $("[lan]").each(function() {
                $(this).text(i18n.getLanVal($(this), "lan"));
            });

            $("[lan-placeholder]").each(function() {
                $(this).attr("placeholder", i18n.getLanVal($(this), "lan-placeholder"));
            });
            $("[lan-value]").each(function() {
                $(this).val(i18n.getLanVal($(this), "lan-value"));
            });
            $("[lan-title]").each(function() {
                $(this).attr("title", i18n.getLanVal($(this), "lan-title"));
            });
            $("[lan-before]").each(function() {
                $(this).html(i18n.getLanVal($(this), "lan-before") + $(this).html());
            });
        }
    }
    // 自动
//i18n.init();
// 强制英文
i18n.init("en");

//使用说明：
/*
1.声名语言js文件,最好每个语言单独一个文件
//strings.js
var strings ={
    username:"Username",
    password:"Password",
    user:{name:"USERNAME",pwd:"PASSWORD"},
}
//strings_zh.js
var strings_zh ={
    username:"用户名",
    password:"密码",
    user:{name:"USERNAME",pwd:"PASSWORD"},
}
2. html中使用,给标签添加lan属性,属性值就是上面语言js中定义的名称
//test.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <-- 引入jquery,i18n,资源文件 -->
    <script src="jquery.min.js"></script>
    <script src="strings.js"></script>
    <script src="strings_zh.js"></script>
    // 最后加载
    <script src="i18n.js"></script>
    <script>
        //在加载完成后使用i18n的方法去修改语言内容
        window.onload = function(){
            i18n.load();
        }
    </script>
</head>
<body>
    <label lan="username"></label>
    <div lan="password"></div>
    <div lan="user.pwd"></div>
</body>
</html>

*/